﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
using BPM.Base.DataTypeLib;

namespace BPM.Foundation.WFService
{
   [DataContract()]
   public class WorkflowStartParameter
    {

       [DataMember()]
       public Guid instanceID { set; get; }

       [DataMember()]
       public string templateID { set; get; }

       [DataMember()]
       public string templateEdition { set; get; }

       [DataMember()]
       public string nextStateUserNo { set; get; }


       [DataMember()]
       public DataForm dataForm { set; get; }

       [DataMember()]
       public BusinessParameter businessParameter { set; get; }


       [DataMember()]
       public ChildWorkflowParameter childWorkflowParameter { set; get; }

       [DataMember()]
       public PowerParameter powerParameter { set; get; }

       [DataMember()]
       public string nextStateInceptDept { set; get; }

       [DataMember()]
       public string nextStateInceptDuty { set; get; }

    }

   [DataContract()]
   public class BusinessParameter
   {
       [DataMember()]
       public string businessType { set; get; }

       [DataMember()]
       public string businessID { set; get; }

       [DataMember()]
       public string masterBusinessID { set; get; }

       [DataMember()]
       public string businessName { set; get; }

       [DataMember()]
       public string businessDescription { set; get; }

       [DataMember()]
       public string urgency { set; get; }

       [DataMember()]
       public string secrecy { set; get; }

       [DataMember()]
       public string startUser { set; get; }

       [DataMember()]
       public string startDepartment { set; get; }

       [DataMember()]
       public string startDuty { set; get; }

       [DataMember()]
       public DateTime startTime { set; get; }

       [DataMember()]
       public int testID { set; get; }
   }

   [DataContract()]
   public class PowerParameter
   {
       [DataMember()]
       public string manageDepartment { set; get; }

       [DataMember()]
       public string manageDuty { set; get; }

       [DataMember()]
       public string manageUser { set; get; }

       [DataMember()]
       public string seeDepartment { set; get; }

       [DataMember()]
       public string seeDuty { set; get; }

       [DataMember()]
       public string seeUser { set; get; }

       [DataMember()]
       public string startUserPower { set; get; }

       [DataMember()]
       public int transactTimelimit { set; get; }

       [DataMember()]
       public string overtimeOperate { set; get; }
   }

   [DataContract()]
   public class ChildWorkflowParameter
   {
       [DataMember()]
       public string regressGroup { set; get; }

       [DataMember()]
       public bool  regress { set; get; }

       [DataMember()]
       public Guid masterInstanceID { set; get; }

   }
}
